#include <stdio.h>
#include <stdlib.h>
typedef struct node
{
	int data;
	struct node* next;
	struct node* prve;
}node;
node* head=NULL;
node* GetNewNode(int data)
{
	node* temp = (node*)malloc(sizeof(node));
	temp->data=data;
	temp->next=NULL;
	temp->prve=NULL;
	return temp;
}
void InsertAtHead(int data)
{
	node* temp=GetNewNode(data);
	if(head==NULL)
	{
		head=temp;
		return;
	}
	head->prve=temp;
	temp->next=head;
	head=temp;
}
void Print()
{
	node* temp = head;
	printf("Forward: ");
	while(temp!=NULL)
	{
		printf("%d ",temp->data);
		temp=temp->next;
	}
	printf("\n");
}
void ReversePrint()
{
	node* temp=head;
	if(temp==NULL)
	return;
	while(temp->next!=NULL)
	temp=temp->next;
	printf("Reverse: ");
	while(temp!=NULL)
	{
		printf("%d ",temp->data);
		temp=temp->prve;
	}
	printf("\n");
}
int main(void)
{
	InsertAtHead(7); 
	InsertAtHead(6);
	InsertAtHead(5);
	Print();
	ReversePrint();
	return 0;
}
